
$(function(){
    $("#ModalNeoPro").dialog({
        autoOpen: false,
        width: 510,
        height: 340,
        buttons: {
            "Grabar": function() {
                insertar();
            },
            "Cancelar": function() {
                $("#ModalNeoPro").dialog("close");
            }
        },
        modal: true
    });
    $("#ModalEdiPro").dialog({
        autoOpen: false,
        width: 510,
        height: 340,
        buttons: {
            "Grabar": function(){
                editar();
            },
            "Cancelar": function(){
                $("#ModalEdiPro").dialog("close");
            }
        },
        modal: true
    });
    
    $("#btnNuevoPro").click(function(){
        $("#ModalNeoPro").dialog("open");
        limpiarNuevoPro();
        generarCodigo();
        listarUnidadMedida("lstUnidadMedida");
        listarTipo("lstTipo");
    });
    
    $("#btnEditarPro").click(function(){
        
        var filas= jQuery("#grid").jqGrid('getGridParam','selarrrow');
   
        if(filas!=""){
            if (filas.length > 0) {
                if (filas.length == 1) {
                    var codigoSel=jQuery("#grid").jqGrid('getRowData',filas[0]).codigo;
                    obtenerID(codigoSel);
                } else {
                    alert("Para modificar seleccione sólo un elemento de la lista.");
                }
            } else {
                alert("Seleccione elemento a modificar.");
            }
        }else{
            alert("Seleccione elemento a modificar"); 
        }
    });
    
    $("#btnEliminarPro").click(function(){
        
        var filas= jQuery("#grid").jqGrid('getGridParam','selarrrow');
        if (filas.length > 0) {
            if (confirm("¿Esta Seguro de Eliminar?")) {
                for (var i = 0; i < filas.length; i++) {
                    var codigoSel = (jQuery("#grid").jqGrid('getRowData', filas[i]).codigo);
                    validarEliminar(codigoSel);
                }
            }
        } else {
            alert("Seleccione elemento para eliminar.");
        }
    });
    
    $("#txtCodigoProSearch").keypress(function(e){
        if(e.which == 13){
            buscar();
        }
    });
    $("#txtNombreProSearch").keypress(function(e){
        if(e.which == 13){
            buscar();
        }
    });
    
    $("#btnBuscarPro").click(function(){
        buscar();
    }).button();
    $("#btnLimpiarPro").click(function(){
       $("#txtCodigoProSearch").val("");
       $("#txtNombreProSearch").val("");
    }).button();
    
    
    buscar();
    
});
var validarEliminar = function (codigo){
    var producto = {
        opc:'vdel',
        codigo:codigo
    };
    $.ajax({
        data:producto,
        url:'ajax/ajaxProducto.php',
        type:'POST',
        success:function(response){
            if(response != '0'){
                alert(response);
            }else{
                eliminar(codigo);
            }
        }
    });
};

var eliminar = function(codigo){
   var producto = {
           opc:'del',
           codigo:codigo
   };
   $.ajax({
          data:producto,
          url:'ajax/ajaxProducto.php',
          type:'POST',
          beforeSend:function(){},
          success:function(response){
            $("#grid").jqGrid("clearGridData", true);    
            alert(response);
            buscar();
          }
   });
};

var editar = function(){
    if(ValidarRequeridosEdit()){
        var producto = {
            opc:"edi",
            codigo:$("#txtCodigoProEdi").val(),
            codigo_alterno:$("#txtCodigoAltProEdi").val(),
            nombre:$("#txtNombreProEdi").val(),
            cod_unidad:$("#lstUnidadMedidaEdi").val(),
            tipo:$("#lstTipoEdi").val()
        };
        $.ajax({
            data:producto,
            url:'ajax/ajaxProducto.php',
            type:'POST',
            beforeSend:function(){},
            success:function(response){
                $("#ModalEdiPro").dialog("close");
                alert(response);
                buscar();
            }
        });
    }
};

var generarCodigo = function(){
    var producto = {opc:'cod'};
    $.ajax({
        data:producto,
        url:'ajax/ajaxProducto.php',
        type:'POST',
        beforeSend:function(){},
        success:function(response){
            var producto = $.parseJSON(response);
            $("#txtCodigoPro").val(producto.codigoNuevo);
        }
    });
};

var obtenerID = function(codigo){
    
    $("#ModalEdiPro").dialog("open");
    limpiarEditarPro();
    var producto = { 
        opc:'get',
        codigo: codigo,
        nombre:''                    
    };
    $.ajax({
       data:producto,
       url:'ajax/ajaxProducto.php',
       type:'post',
       beforeSend: function(){},
       success: function(response){
            var producto=$.parseJSON(response);
            $("#txtCodigoProEdi").val(producto.codigo);
            $("#txtCodigoAltProEdi").val(producto.codigo_alterno);
            $("#txtNombreProEdi").val(producto.nombre);
            listarTipoEdi(producto.tipo,"lstTipoEdi");
            listarUnidadMedidaEdi(producto.cod_unidad,"lstUnidadMedidaEdi");
       }
    });
};

var insertar = function(){
    
    if(ValidarRequeridos()){
        var producto = {
            opc:'ins',
            codigo_alterno: $("#txtCodigoAltPro").val(),
            nombre: $("#txtNombrePro").val(),
            cod_unidad: $("#lstUnidadMedida").val(),
            tipo: $("#lstTipo").val()
        }; 
        $.ajax({
            data:producto,
            url:'ajax/ajaxProducto.php',
            type:'POST',
            beforeSend:function(){},
            success:function(response){
                $("#ModalNeoPro").dialog("close");
                alert(response);
                buscar();
            }
        });
    }
    
};

var limpiarNuevoPro = function (){
    
    $("#txtCodigoPro").val("");
    $("#txtCodigoAltPro").val("");
    $("#txtNombrePro").val("");
    $("#lstUnidadMedida option").remove();
    $("#lstTipo option").remove();
    
    msgError("","txtCodigoPro");
    msgError("","txtCodigoAltPro");
    msgError("","txtNombrePro");
    msgError("","lstUnidadMedida");
    msgError("","lstTipo");
    
};

var limpiarEditarPro = function(){
    
    $("#txtCodigoProEdi").val("");
    $("#txtCodigoAltProEdi").val("");
    $("#txtNombreProEdi").val("");
    $("#lstUnidadMedidaEdi option").remove();
    $("#lstTipoEdi option").remove();
    
    msgErrorEdit("","txtCodigoProEdi");
    msgErrorEdit("","txtCodigoAltProEdi");
    msgErrorEdit("","txtNombreProEdi");
    msgErrorEdit("","lstUnidadMedidaEdi");
    msgErrorEdit("","lstTipoEdi");
    
};

var buscar = function() {

    var vcod_alterno = $("#txtCodigoProSearch").val();
    var vnombre = $("#txtNombreProSearch").val();
    var vurli='ajax/ajaxProducto.php?opc=bus&nd='+new Date().getTime()+'&codigo_alterno='+vcod_alterno+'&nombre='+vnombre;
    
    var producto = {
        opc:"bus",
        codigo_alterno: $("#txtCodigoProSearch").val(),
        nombre: $("#txtNombreProSearch").val()
    };
    $("#grid").jqGrid("clearGridData", true);
    $("#grid").jqGrid('setGridParam',{url:vurli,datatype:'json',mtype: 'POST',postData:producto}).trigger('reloadGrid');
    
    jQuery("#grid").jqGrid({
        url:vurli,
        datatype: "json",
        mtype: 'POST',
        postData:producto,
        colNames: ['Codigo','Codigo Alterno', 'Nombre','Cod_unidad','Unidad Medida','cod_tipo','Tipo'],
        colModel: [
                    {name: 'codigo',index: 'codigo',width: 100,sorttype:"string"},
                    {name: 'codigo_alterno',index: 'codigo_alterno',width: 100,sorttype:"string"},
                    {name: 'nombre',index: 'codigo',width: 100,sorttype:"string"},
                    {name: 'cod_unidad',index: 'codigo',width: 100,sorttype:"string",hidden:true},
                    {name: 'unidad_medida',index: 'codigo',width: 100,sorttype:"string"},
                    {name: 'tipo',index: 'codigo',width: 100,sorttype:"string",hidden:true},
                    {name: 'descrip_tipo',index: 'codigo',width: 100,sorttype:"string"}
                  ],
        rowNum:10,
   	rowList:[10,20,30],
   	pager: '#pager',
   	sortname: 'id',
        viewrecords: true,
        sortorder: "desc",
        multiselect: true,
        multiSort:true,
        width: "1200",
        height: "180",
        caption: "Productos"
    }).navGrid("#pager", {
        edit: false,
        add: false,
        search: false,
        del: false
    });
};

jQuery.extend(jQuery.jgrid.edit, {
    ajaxEditOptions: { contentType: "application/json" },
    recreateForm: true,
    serializeEditData: function (postData) {
        return JSON.stringify(postData);
    }
});

jQuery.extend(jQuery.jgrid.del, {
    ajaxDelOptions: { contentType: "application/json" },
    serializeDelData: function (postData) {
        return JSON.stringify(postData);
    }
});